package com.sanyou.service;

import com.sanyou.pojo.Product;
import com.sanyou.pojo.vo.OrderVo;
import com.sanyou.utils.PagedResult;

import java.util.List;

/**
 * User: asus
 * Date: 2021-12-13
 * Time: 15:38
 * Version:V1.0
 */
public interface OrderService {
    boolean checkOrderExist(OrderVo orderVo);

    void addOrder(OrderVo orderVo);

    PagedResult query(Integer page, Integer pageSize,OrderVo orderVo);

    void updateOrder(OrderVo orderVo);

    void deleteOrder(Integer oid);

    List<OrderVo> getProjectOrder(Integer pid);

    /**
     * 查询目标序号范围内未被分配给订单的阴极板
     * @param startProductCode：开始序号
     * @param endProductCode：结束序号
     * @return 未被分配给订单的阴极板列表
     */
    List<Product> listUnassignedProductsInRange(String startProductCode, String endProductCode);

    void distrProduct(OrderVo orderVo);

    /**
     * 无编号阴极板分配
     * @param orderVo
     */
    void distrProductWithoutNum(OrderVo orderVo);

    PagedResult getOrderProduct(Integer oid, Integer page, Integer pageSize);

    /**
     * 判断是否存在可分配的阴极板序号（目标序号范围内）
     * @param startProductCode：开始序号
     * @param endProductCode：结束序号
     * @return true：存在；false：不存在
     */
    boolean checkCodeRange(String startProductCode, String endProductCode);
}
